1. Field of the Invention
The present invention relates to a computer network and more particularly, to reducing loads produced on the computer network during downloading contents in Peer to Peer (P2P) transfer applications.
2. Description of the Related Art
P2P (Peer to Peer) is a kind of computer network application which allows P2P users (also referred to as “P2P participants” and “P2P clients”) in a distributed environment to efficiently and reliably obtain shared contents provided by a content provider, e.g. music, MP3 files, movies and software (hereinafter referred to as “shared files”, “shared contents” and “P2P contents”). According to the transfer mode of P2P, P2P clients can obtain shared contents not only from a content provider server but also from other P2P clients.
With the rapid popularization of all kinds of P2P application software, there are a wide variety of P2P shared contents in the Internet. However, frequent transfer of P2P contents, especially the traffic of content transfer between P2P clients, brings about a heavy load on the computer network.
FIG. 1 is a schematic diagram showing a computer networking environment. The computer network 100 shown in FIG. 1 includes a backbone network 110, clients 121a-1, 121a-2 . . . , and clients 121b-1, 121b-2 . . . .
A content server 101, a directory server 102 and a seed server 103 can also be implemented in P2P applications in the network 100. Those skilled in the art should appreciate that, in the P2P application field, the content server is a server where the shared contents are provided. The directory server is a server provided for (i) P2P user registration, in which a list of P2P participants who possess the shared contents is stored, (ii) the list listing names of the shared contents and information on the P2P participants, e.g. names of the shared files, (iii) information on identifications and (iv) addresses of the P2P participants. The seed server is a server for providing seed files to be downloaded by the P2P users, where the seed file contains index information on the directory server of the shared contents.
When a user of the client 121a-1 downloads the shared contents, the user downloads a corresponding seed file first. The user then sends a P2P content request for example by clicking a link to a seed file with a suffix that represents a seed file on a user browser. The P2P content request is routed to the seed server 103. In response, the seed server 103 sends to the client 121a-1 a seed file corresponding to the content requested. The client 121a-1 receives and downloads the seed file. The client 121a-1 obtains information on the P2P participant from a relevant directory server 102 according to the index information in the seed file, to thereby determine the provider of the shared contents. Then, the client 121a-1 downloads the shared contents form the provider of the shared contents (it can be the content server 101 or the P2P participant that has downloaded the shared contents and registered with directory server), and registers with the directory server 102 to be a P2P participant of the downloaded shared contents, i.e. a provider of the shared contents.
When the client 121a-2 downloads the shared contents, the shared contents are downloaded in a manner that is substantially the same as the client 121a-1 as described above. The client 121a-2 sends a P2P content request and downloads a seed file from the seed server 103, obtains information on the provider of the shared contents from the directory server 102 according to the index information in the seed file, then downloads the shared contents from a shared content provider, and registers with the relevant directory server 102 to be a P2P participant of the downloaded shared contents, i.e. a provider of the shared contents.
According to the operating manner of the P2P applications, if the shared contents to be downloaded by the client 121a-2 are the same as the shared contents download by the client 121a-1, index information in the seed file obtained by the client 121a-2 directs to a directory server which may indicate that either the content server 101 or the client 121a-1 could be the provider of the shared contents, so the client 121a-2 may download the shared contents from either the content server 101 or the client 121a-1.
P2P application software can allow the shared content requester to download the shared contents from different content providers according to the information of the shared content providers recorded in the directory server 102, for example performance parameters such as speed and bandwidth. Accordingly, the P2P participant can provide the directory server with its performance information while registering with the directory server.
It can be seen from the above description of the P2P content downloading that, when the client (e.g. client 121a-1) downloads the shared contents, in addition to communicating with the directory server 102 and the seed server 103, it also communicates with the content server 101 and other P2P participants (e.g. client 121a-2) in order to download the shard contents directly. As compared with the communication with the directory server 102 and the seed server 103, the traffic (P2P contents) of the communication with the content server 101 or other P2P participants need to occupy more bandwidth. If the communication with the content server 101 or other P2P participants is long distance, a considerable traffic will be brought about to the backbone network of the computer network. A serious load will be brought to the backbone network when numerous clients download the shared contents simultaneously.